
int unicodeHasKey[] =
{   300,
    301,
    372,
    373,
    374,
    375,
    399,
    415,
    416,
    417,
    431,
    432,
    437,
    438,
    465,
    466,
    486,
    487,
    601,
    629,
    1170,
    1171,
    1174,
    1175,
    1178,
    1179,
    1180,
    1181,
    1186,
    1187,
    1198,
    1199,
    1200,
    1201,
    1202,
    1203,
    1206,
    1207,
    1208,
    1209,
    1210,
    1211,
    1240,
    1241,
    1250,
    1251,
    1256,
    1257,
    1262,
    1263,
    1329,
    1330,
    1331,
    1332,
    1333,
    1334,
    1335,
    1336,
    1337,
    1338,
    1339,
    1340,
    1341,
    1342,
    1343,
    1344,
    1345,
    1346,
    1347,
    1348,
    1349,
    1350,
    1351,
    1352,
    1353,
    1354,
    1355,
    1356,
    1357,
    1358,
    1359,
    1360,
    1361,
    1362,
    1363,
    1364,
    1365,
    1366,
    1370,
    1371,
    1371,
    1372,
    1372,
    1373,
    1373,
    1374,
    1374,
    1377,
    1378,
    1379,
    1380,
    1381,
    1382,
    1383,
    1384,
    1385,
    1386,
    1387,
    1388,
    1389,
    1390,
    1391,
    1392,
    1393,
    1394,
    1395,
    1396,
    1397,
    1398,
    1399,
    1400,
    1401,
    1402,
    1403,
    1404,
    1405,
    1406,
    1407,
    1408,
    1409,
    1410,
    1411,
    1412,
    1413,
    1414,
    1415,
    1417,
    1417,
    1418,
    1418,
    1619,
    1620,
    1621,
    1632,
    1633,
    1634,
    1635,
    1636,
    1637,
    1638,
    1639,
    1640,
    1641,
    1642,
    1648,
    1657,
    1662,
    1670,
    1672,
    1681,
    1688,
    1700,
    1705,
    1711,
    1722,
    1726,
    1729,
    1740,
    1740,
    1746,
    1748,
    1776,
    1777,
    1778,
    1779,
    1780,
    1781,
    1782,
    1783,
    1784,
    1785,
    3458,
    3459,
    3461,
    3462,
    3463,
    3464,
    3465,
    3466,
    3467,
    3468,
    3469,
    3470,
    3471,
    3472,
    3473,
    3474,
    3475,
    3476,
    3477,
    3478,
    3482,
    3483,
    3484,
    3485,
    3486,
    3487,
    3488,
    3489,
    3490,
    3491,
    3492,
    3493,
    3494,
    3495,
    3496,
    3497,
    3498,
    3499,
    3500,
    3501,
    3502,
    3503,
    3504,
    3505,
    3507,
    3508,
    3509,
    3510,
    3511,
    3512,
    3513,
    3514,
    3515,
    3517,
    3520,
    3521,
    3522,
    3523,
    3524,
    3525,
    3526,
    3530,
    3535,
    3536,
    3537,
    3538,
    3539,
    3540,
    3542,
    3544,
    3545,
    3546,
    3547,
    3548,
    3549,
    3550,
    3551,
    3570,
    3571,
    3572,
    4304,
    4305,
    4306,
    4307,
    4308,
    4309,
    4310,
    4311,
    4312,
    4313,
    4314,
    4315,
    4316,
    4317,
    4318,
    4319,
    4320,
    4321,
    4322,
    4323,
    4324,
    4325,
    4326,
    4327,
    4328,
    4329,
    4330,
    4331,
    4332,
    4333,
    4334,
    4335,
    4336,
    4337,
    4338,
    4339,
    4340,
    4341,
    4342,
    7682,
    7683,
    7690,
    7691,
    7710,
    7711,
    7734,
    7735,
    7744,
    7745,
    7766,
    7767,
    7776,
    7777,
    7786,
    7787,
    7808,
    7809,
    7810,
    7811,
    7812,
    7813,
    7818,
    7819,
    7840,
    7841,
    7842,
    7843,
    7844,
    7845,
    7846,
    7847,
    7848,
    7849,
    7850,
    7851,
    7852,
    7853,
    7854,
    7855,
    7856,
    7857,
    7858,
    7859,
    7860,
    7861,
    7862,
    7863,
    7864,
    7865,
    7866,
    7867,
    7868,
    7869,
    7870,
    7871,
    7872,
    7873,
    7874,
    7875,
    7876,
    7877,
    7878,
    7879,
    7880,
    7881,
    7882,
    7883,
    7884,
    7885,
    7886,
    7887,
    7888,
    7889,
    7890,
    7891,
    7892,
    7893,
    7894,
    7895,
    7896,
    7897,
    7898,
    7899,
    7900,
    7901,
    7902,
    7903,
    7904,
    7905,
    7906,
    7907,
    7908,
    7909,
    7910,
    7911,
    7912,
    7913,
    7914,
    7915,
    7916,
    7917,
    7918,
    7919,
    7920,
    7921,
    7922,
    7923,
    7924,
    7925,
    7926,
    7927,
    7928,
    7929,
    8304,
    8308,
    8309,
    8310,
    8311,
    8312,
    8313,
    8320,
    8321,
    8322,
    8323,
    8324,
    8325,
    8326,
    8327,
    8328,
    8329,
    8352,
    8353,
    8354,
    8355,
    8356,
    8357,
    8358,
    8359,
    8360,
    8361,
    8362,
    8363,
    8706,
    8709,
    8712,
    8713,
    8715,
    8730,
    8731,
    8732,
    8748,
    8749,
    8757,
    8775,
    8776,
    8802,
    8803,
    10240,
    10241,
    10242,
    10243,
    10244,
    10245,
    10246,
    10247,
    10248,
    10249,
    10250,
    10251,
    10252,
    10253,
    10254,
    10255,
    10256,
    10257,
    10258,
    10259,
    10260,
    10261,
    10262,
    10263,
    10264,
    10265,
    10266,
    10267,
    10268,
    10269,
    10270,
    10271,
    10272,
    10273,
    10274,
    10275,
    10276,
    10277,
    10278,
    10279,
    10280,
    10281,
    10282,
    10283,
    10284,
    10285,
    10286,
    10287,
    10288,
    10289,
    10290,
    10291,
    10292,
    10293,
    10294,
    10295,
    10296,
    10297,
    10298,
    10299,
    10300,
    10301,
    10302,
    10303,
    10304,
    10305,
    10306,
    10307,
    10308,
    10309,
    10310,
    10311,
    10312,
    10313,
    10314,
    10315,
    10316,
    10317,
    10318,
    10319,
    10320,
    10321,
    10322,
    10323,
    10324,
    10325,
    10326,
    10327,
    10328,
    10329,
    10330,
    10331,
    10332,
    10333,
    10334,
    10335,
    10336,
    10337,
    10338,
    10339,
    10340,
    10341,
    10342,
    10343,
    10344,
    10345,
    10346,
    10347,
    10348,
    10349,
    10350,
    10351,
    10352,
    10353,
    10354,
    10355,
    10356,
    10357,
    10358,
    10359,
    10360,
    10361,
    10362,
    10363,
    10364,
    10365,
    10366,
    10367,
    10368,
    10369,
    10370,
    10371,
    10372,
    10373,
    10374,
    10375,
    10376,
    10377,
    10378,
    10379,
    10380,
    10381,
    10382,
    10383,
    10384,
    10385,
    10386,
    10387,
    10388,
    10389,
    10390,
    10391,
    10392,
    10393,
    10394,
    10395,
    10396,
    10397,
    10398,
    10399,
    10400,
    10401,
    10402,
    10403,
    10404,
    10405,
    10406,
    10407,
    10408,
    10409,
    10410,
    10411,
    10412,
    10413,
    10414,
    10415,
    10416,
    10417,
    10418,
    10419,
    10420,
    10421,
    10422,
    10423,
    10424,
    10425,
    10426,
    10427,
    10428,
    10429,
    10430,
    10431,
    10432,
    10433,
    10434,
    10435,
    10436,
    10437,
    10438,
    10439,
    10440,
    10441,
    10442,
    10443,
    10444,
    10445,
    10446,
    10447,
    10448,
    10449,
    10450,
    10451,
    10452,
    10453,
    10454,
    10455,
    10456,
    10457,
    10458,
    10459,
    10460,
    10461,
    10462,
    10463,
    10464,
    10465,
    10466,
    10467,
    10468,
    10469,
    10470,
    10471,
    10472,
    10473,
    10474,
    10475,
    10476,
    10477,
    10478,
    10479,
    10480,
    10481,
    10482,
    10483,
    10484,
    10485,
    10486,
    10487,
    10488,
    10489,
    10490,
    10491,
    10492,
    10493,
    10494,
    10495
};

struct Unicode2Key {
    int unicode;
    int key;

    bool operator < (const int& u) const {
        return unicode < u;
    }
};

bool operator < (const int& u, const Unicode2Key& key) {
    return u < key.unicode;
}

Unicode2Key unicodeKeyMap[] = {
    {32, 32},
    {33, 33},
    {34, 34},
    {35, 35},
    {36, 36},
    {37, 37},
    {38, 38},
    {39, 39},
    {39, 39},
    {40, 40},
    {41, 41},
    {42, 42},
    {43, 43},
    {44, 44},
    {45, 45},
    {46, 46},
    {47, 47},
    {48, 48},
    {49, 49},
    {50, 50},
    {51, 51},
    {52, 52},
    {53, 53},
    {54, 54},
    {55, 55},
    {56, 56},
    {57, 57},
    {58, 58},
    {59, 59},
    {60, 60},
    {61, 61},
    {62, 62},
    {63, 63},
    {64, 64},
    {65, 65},
    {66, 66},
    {67, 67},
    {68, 68},
    {69, 69},
    {70, 70},
    {71, 71},
    {72, 72},
    {73, 73},
    {74, 74},
    {75, 75},
    {76, 76},
    {77, 77},
    {78, 78},
    {79, 79},
    {80, 80},
    {81, 81},
    {82, 82},
    {83, 83},
    {84, 84},
    {85, 85},
    {86, 86},
    {87, 87},
    {88, 88},
    {89, 89},
    {90, 90},
    {91, 91},
    {92, 92},
    {93, 93},
    {94, 94},
    {95, 95},
    {96, 96},
    {96, 96},
    {97, 97},
    {98, 98},
    {99, 99},
    {100, 100},
    {101, 101},
    {102, 102},
    {103, 103},
    {104, 104},
    {105, 105},
    {106, 106},
    {107, 107},
    {108, 108},
    {109, 109},
    {110, 110},
    {111, 111},
    {112, 112},
    {113, 113},
    {114, 114},
    {115, 115},
    {116, 116},
    {117, 117},
    {118, 118},
    {119, 119},
    {120, 120},
    {121, 121},
    {122, 122},
    {123, 123},
    {124, 124},
    {125, 125},
    {126, 126},
    {160, 160},
    {161, 161},
    {162, 162},
    {163, 163},
    {164, 164},
    {165, 165},
    {166, 166},
    {167, 167},
    {168, 168},
    {169, 169},
    {170, 170},
    {171, 171},
    {172, 172},
    {173, 173},
    {174, 174},
    {175, 175},
    {176, 176},
    {177, 177},
    {178, 178},
    {179, 179},
    {180, 180},
    {181, 181},
    {182, 182},
    {183, 183},
    {184, 184},
    {185, 185},
    {186, 186},
    {187, 187},
    {188, 188},
    {189, 189},
    {190, 190},
    {191, 191},
    {192, 192},
    {193, 193},
    {194, 194},
    {195, 195},
    {196, 196},
    {197, 197},
    {198, 198},
    {199, 199},
    {200, 200},
    {201, 201},
    {202, 202},
    {203, 203},
    {204, 204},
    {205, 205},
    {206, 206},
    {207, 207},
    {208, 208},
    {208, 208},
    {209, 209},
    {210, 210},
    {211, 211},
    {212, 212},
    {213, 213},
    {214, 214},
    {215, 215},
    {216, 216},
    {216, 216},
    {217, 217},
    {218, 218},
    {219, 219},
    {220, 220},
    {221, 221},
    {222, 222},
    {222, 222},
    {223, 223},
    {224, 224},
    {225, 225},
    {226, 226},
    {227, 227},
    {228, 228},
    {229, 229},
    {230, 230},
    {231, 231},
    {232, 232},
    {233, 233},
    {234, 234},
    {235, 235},
    {236, 236},
    {237, 237},
    {238, 238},
    {239, 239},
    {240, 240},
    {241, 241},
    {242, 242},
    {243, 243},
    {244, 244},
    {245, 245},
    {246, 246},
    {247, 247},
    {248, 248},
    {248, 248},
    {249, 249},
    {250, 250},
    {251, 251},
    {252, 252},
    {253, 253},
    {254, 254},
    {255, 255},
    /*
    {0, 1709},
    {0, 1725},
    {0, 2225},
    {0, 2226},
    {0, 2227},
    {0, 2228},
    {0, 2229},
    {0, 2230},
    {0, 2231},
    {0, 2527},
    {0, 2732},
    {0, 2749},
    {0, 2751},
    {0, 2763},
    {0, 2778},
    {0, 2815}, */
    {256, 960},
    {257, 992},
    {258, 451},
    {259, 483},
    {260, 417},
    {261, 433},
    {262, 454},
    {263, 486},
    {264, 710},
    {265, 742},
    {266, 709},
    {267, 741},
    {268, 456},
    {269, 488},
    {270, 463},
    {271, 495},
    {272, 464},
    {273, 496},
    {274, 938},
    {275, 954},
    {278, 972},
    {279, 1004},
    {280, 458},
    {281, 490},
    {282, 460},
    {283, 492},
    {284, 728},
    {285, 760},
    {286, 683},
    {287, 699},
    {288, 725},
    {289, 757},
    {290, 939},
    {291, 955},
    {292, 678},
    {293, 694},
    {294, 673},
    {295, 689},
    {296, 933},
    {297, 949},
    {298, 975},
    {299, 1007},
    {302, 967},
    {303, 999},
    {304, 681},
    {305, 697},
    {308, 684},
    {309, 700},
    {310, 979},
    {311, 1011},
    {312, 930},
    {312, 930},
    {313, 453},
    {314, 485},
    {315, 934},
    {316, 950},
    {317, 421},
    {318, 437},
    {321, 419},
    {322, 435},
    {323, 465},
    {324, 497},
    {325, 977},
    {326, 1009},
    {327, 466},
    {328, 498},
    {330, 957},
    {331, 959},
    {332, 978},
    {333, 1010},
    {336, 469},
    {337, 501},
    {340, 448},
    {341, 480},
    {342, 931},
    {343, 947},
    {344, 472},
    {345, 504},
    {346, 422},
    {347, 438},
    {348, 734},
    {349, 766},
    {350, 426},
    {351, 442},
    {352, 425},
    {353, 441},
    {354, 478},
    {355, 510},
    {356, 427},
    {357, 443},
    {358, 940},
    {359, 956},
    {360, 989},
    {361, 1021},
    {362, 990},
    {363, 1022},
    {364, 733},
    {365, 765},
    {366, 473},
    {367, 505},
    {368, 475},
    {369, 507},
    {370, 985},
    {371, 1017},
    {377, 428},
    {378, 444},
    {379, 431},
    {380, 447},
    {381, 430},
    {382, 446},
    {402, 2294},
    {711, 439},
    {728, 418},
    {729, 511},
    {731, 434},
    {733, 445},
    {901, 1966},
    {902, 1953},
    {904, 1954},
    {905, 1955},
    {906, 1956},
    {908, 1959},
    {910, 1960},
    {911, 1963},
    {912, 1974},
    {913, 1985},
    {914, 1986},
    {915, 1987},
    {916, 1988},
    {917, 1989},
    {918, 1990},
    {919, 1991},
    {920, 1992},
    {921, 1993},
    {922, 1994},
    {923, 1995},
    {923, 1995},
    {924, 1996},
    {925, 1997},
    {926, 1998},
    {927, 1999},
    {928, 2000},
    {929, 2001},
    {931, 2002},
    {932, 2004},
    {933, 2005},
    {934, 2006},
    {935, 2007},
    {936, 2008},
    {937, 2009},
    {938, 1957},
    {938, 1957},
    {939, 1961},
    {940, 1969},
    {941, 1970},
    {942, 1971},
    {943, 1972},
    {944, 1978},
    {945, 2017},
    {946, 2018},
    {947, 2019},
    {948, 2020},
    {949, 2021},
    {950, 2022},
    {951, 2023},
    {952, 2024},
    {953, 2025},
    {954, 2026},
    {955, 2027},
    {955, 2027},
    {956, 2028},
    {957, 2029},
    {958, 2030},
    {959, 2031},
    {960, 2032},
    {961, 2033},
    {962, 2035},
    {963, 2034},
    {964, 2036},
    {965, 2037},
    {966, 2038},
    {967, 2039},
    {968, 2040},
    {969, 2041},
    {970, 1973},
    {971, 1977},
    {972, 1975},
    {973, 1976},
    {974, 1979},
    {1025, 1715},
    {1026, 1713},
    {1027, 1714},
    {1028, 1716},
    {1028, 1716},
    {1029, 1717},
    {1030, 1718},
    {1030, 1718},
    {1031, 1719},
    {1031, 1719},
    {1032, 1720},
    {1032, 1720},
    {1033, 1721},
    {1033, 1721},
    {1034, 1722},
    {1034, 1722},
    {1035, 1723},
    {1036, 1724},
    {1038, 1726},
    {1039, 1727},
    {1039, 1727},
    {1040, 1761},
    {1041, 1762},
    {1042, 1783},
    {1043, 1767},
    {1044, 1764},
    {1045, 1765},
    {1046, 1782},
    {1047, 1786},
    {1048, 1769},
    {1049, 1770},
    {1050, 1771},
    {1051, 1772},
    {1052, 1773},
    {1053, 1774},
    {1054, 1775},
    {1055, 1776},
    {1056, 1778},
    {1057, 1779},
    {1058, 1780},
    {1059, 1781},
    {1060, 1766},
    {1061, 1768},
    {1062, 1763},
    {1063, 1790},
    {1064, 1787},
    {1065, 1789},
    {1066, 1791},
    {1067, 1785},
    {1068, 1784},
    {1069, 1788},
    {1070, 1760},
    {1071, 1777},
    {1072, 1729},
    {1073, 1730},
    {1074, 1751},
    {1075, 1735},
    {1076, 1732},
    {1077, 1733},
    {1078, 1750},
    {1079, 1754},
    {1080, 1737},
    {1081, 1738},
    {1082, 1739},
    {1083, 1740},
    {1084, 1741},
    {1085, 1742},
    {1086, 1743},
    {1087, 1744},
    {1088, 1746},
    {1089, 1747},
    {1090, 1748},
    {1091, 1749},
    {1092, 1734},
    {1093, 1736},
    {1094, 1731},
    {1095, 1758},
    {1096, 1755},
    {1097, 1757},
    {1098, 1759},
    {1099, 1753},
    {1100, 1752},
    {1101, 1756},
    {1102, 1728},
    {1103, 1745},
    {1105, 1699},
    {1106, 1697},
    {1107, 1698},
    {1108, 1700},
    {1108, 1700},
    {1109, 1701},
    {1110, 1702},
    {1110, 1702},
    {1111, 1703},
    {1111, 1703},
    {1112, 1704},
    {1112, 1704},
    {1113, 1705},
    {1113, 1705},
    {1114, 1706},
    {1114, 1706},
    {1115, 1707},
    {1116, 1708},
    {1118, 1710},
    {1119, 1711},
    {1119, 1711},
    {1488, 3296},
    {1489, 3297},
    {1489, 3297},
    {1490, 3298},
    {1490, 3298},
    {1491, 3299},
    {1491, 3299},
    {1492, 3300},
    {1493, 3301},
    {1494, 3302},
    {1494, 3302},
    {1495, 3303},
    {1495, 3303},
    {1496, 3304},
    {1496, 3304},
    {1497, 3305},
    {1498, 3306},
    {1499, 3307},
    {1500, 3308},
    {1501, 3309},
    {1502, 3310},
    {1503, 3311},
    {1504, 3312},
    {1505, 3313},
    {1505, 3313},
    {1506, 3314},
    {1507, 3315},
    {1508, 3316},
    {1509, 3317},
    {1509, 3317},
    {1510, 3318},
    {1510, 3318},
    {1511, 3319},
    {1511, 3319},
    {1512, 3320},
    {1513, 3321},
    {1514, 3322},
    {1514, 3322},
    {1548, 1452},
    {1563, 1467},
    {1567, 1471},
    {1569, 1473},
    {1570, 1474},
    {1571, 1475},
    {1572, 1476},
    {1573, 1477},
    {1574, 1478},
    {1575, 1479},
    {1576, 1480},
    {1577, 1481},
    {1578, 1482},
    {1579, 1483},
    {1580, 1484},
    {1581, 1485},
    {1582, 1486},
    {1583, 1487},
    {1584, 1488},
    {1585, 1489},
    {1586, 1490},
    {1587, 1491},
    {1588, 1492},
    {1589, 1493},
    {1590, 1494},
    {1591, 1495},
    {1592, 1496},
    {1593, 1497},
    {1594, 1498},
    {1600, 1504},
    {1601, 1505},
    {1602, 1506},
    {1603, 1507},
    {1604, 1508},
    {1605, 1509},
    {1606, 1510},
    {1607, 1511},
    {1607, 1511},
    {1608, 1512},
    {1609, 1513},
    {1610, 1514},
    {1611, 1515},
    {1612, 1516},
    {1613, 1517},
    {1614, 1518},
    {1615, 1519},
    {1616, 1520},
    {1617, 1521},
    {1618, 1522},
    {3585, 3489},
    {3586, 3490},
    {3587, 3491},
    {3588, 3492},
    {3589, 3493},
    {3590, 3494},
    {3591, 3495},
    {3592, 3496},
    {3593, 3497},
    {3594, 3498},
    {3595, 3499},
    {3596, 3500},
    {3597, 3501},
    {3598, 3502},
    {3599, 3503},
    {3600, 3504},
    {3601, 3505},
    {3602, 3506},
    {3603, 3507},
    {3604, 3508},
    {3605, 3509},
    {3606, 3510},
    {3607, 3511},
    {3608, 3512},
    {3609, 3513},
    {3610, 3514},
    {3611, 3515},
    {3612, 3516},
    {3613, 3517},
    {3614, 3518},
    {3615, 3519},
    {3616, 3520},
    {3617, 3521},
    {3618, 3522},
    {3619, 3523},
    {3620, 3524},
    {3621, 3525},
    {3622, 3526},
    {3623, 3527},
    {3624, 3528},
    {3625, 3529},
    {3626, 3530},
    {3627, 3531},
    {3628, 3532},
    {3629, 3533},
    {3630, 3534},
    {3631, 3535},
    {3632, 3536},
    {3633, 3537},
    {3634, 3538},
    {3635, 3539},
    {3636, 3540},
    {3637, 3541},
    {3638, 3542},
    {3639, 3543},
    {3640, 3544},
    {3641, 3545},
    {3642, 3546},
    {3647, 3551},
    {3648, 3552},
    {3649, 3553},
    {3650, 3554},
    {3651, 3555},
    {3652, 3556},
    {3653, 3557},
    {3654, 3558},
    {3655, 3559},
    {3656, 3560},
    {3657, 3561},
    {3658, 3562},
    {3659, 3563},
    {3660, 3564},
    {3661, 3565},
    {3664, 3568},
    {3665, 3569},
    {3666, 3570},
    {3667, 3571},
    {3668, 3572},
    {3669, 3573},
    {3670, 3574},
    {3671, 3575},
    {3672, 3576},
    {3673, 3577},
    {4520, 3796},
    {4521, 3797},
    {4522, 3798},
    {4523, 3799},
    {4524, 3800},
    {4525, 3801},
    {4526, 3802},
    {4527, 3803},
    {4528, 3804},
    {4529, 3805},
    {4530, 3806},
    {4531, 3807},
    {4532, 3808},
    {4533, 3809},
    {4534, 3810},
    {4535, 3811},
    {4536, 3812},
    {4537, 3813},
    {4538, 3814},
    {4539, 3815},
    {4540, 3816},
    {4541, 3817},
    {4542, 3818},
    {4543, 3819},
    {4544, 3820},
    {4545, 3821},
    {4546, 3822},
    {4587, 3832},
    {4592, 3833},
    {4601, 3834},
    {8194, 2722},
    {8195, 2721},
    {8196, 2723},
    {8197, 2724},
    {8199, 2725},
    {8200, 2726},
    {8201, 2727},
    {8202, 2728},
    {8210, 2747},
    {8211, 2730},
    {8212, 2729},
    {8213, 1967},
    {8215, 3295},
    {8216, 2768},
    {8217, 2769},
    {8218, 2813},
    {8220, 2770},
    {8221, 2771},
    {8222, 2814},
    {8224, 2801},
    {8225, 2802},
    {8226, 2790},
    {8229, 2735},
    {8230, 2734},
    {8242, 2774},
    {8243, 2775},
    {8248, 2812},
    {8254, 1150},
    {8361, 3839},
    {8364, 8364},
    {8453, 2744},
    {8470, 1712},
    {8471, 2811},
    {8478, 2772},
    {8482, 2761},
    {8531, 2736},
    {8532, 2737},
    {8533, 2738},
    {8534, 2739},
    {8535, 2740},
    {8536, 2741},
    {8537, 2742},
    {8538, 2743},
    {8539, 2755},
    {8540, 2756},
    {8541, 2757},
    {8542, 2758},
    {8592, 2299},
    {8593, 2300},
    {8594, 2301},
    {8595, 2302},
    {8658, 2254},
    {8660, 2253},
    {8706, 2287},
    {8711, 2245},
    {8728, 3018},
    {8730, 2262},
    {8733, 2241},
    {8734, 2242},
    {8743, 2270},
    {8744, 2271},
    {8745, 2268},
    {8746, 2269},
    {8747, 2239},
    {8756, 2240},
    {8764, 2248},
    {8771, 2249},
    {8800, 2237},
    {8801, 2255},
    {8804, 2236},
    {8805, 2238},
    {8834, 2266},
    {8835, 2267},
    {8866, 3036},
    {8867, 3068},
    {8868, 3022},
    {8869, 3010},
    {8968, 3027},
    {8970, 3012},
    {8981, 2810},
    {8992, 2212},
    {8993, 2213},
    {9001, 2748},
    {9002, 2750},
    {9109, 3020},
    {9115, 2219},
    {9117, 2220},
    {9118, 2221},
    {9120, 2222},
    {9121, 2215},
    {9123, 2216},
    {9124, 2217},
    {9126, 2218},
    {9128, 2223},
    {9132, 2224},
    {9143, 2209},
    {9146, 2543},
    {9147, 2544},
    {9148, 2546},
    {9149, 2547},
    {9225, 2530},
    {9226, 2533},
    {9227, 2537},
    {9228, 2531},
    {9229, 2532},
    {9252, 2536},
    {9472, 2211},
    {9474, 2214},
    {9484, 2210},
    {9488, 2539},
    {9492, 2541},
    {9496, 2538},
    {9500, 2548},
    {9508, 2549},
    {9516, 2551},
    {9524, 2550},
    {9532, 2542},
    {9618, 2529},
    {9642, 2791},
    {9643, 2785},
    {9644, 2779},
    {9645, 2786},
    {9646, 2783},
    {9647, 2767},
    {9650, 2792},
    {9651, 2787},
    {9654, 2781},
    {9655, 2765},
    {9660, 2793},
    {9661, 2788},
    {9664, 2780},
    {9665, 2764},
    {9670, 2528},
    {9675, 2766},
    {9679, 2782},
    {9702, 2784},
    {9734, 2789},
    {9742, 2809},
    {9747, 2762},
    {9756, 2794},
    {9758, 2795},
    {9792, 2808},
    {9794, 2807},
    {9827, 2796},
    {9829, 2798},
    {9830, 2797},
    {9837, 2806},
    {9839, 2805},
    {10003, 2803},
    {10007, 2804},
    {10013, 2777},
    {10016, 2800},
    {12289, 1188},
    {12290, 1185},
    {12300, 1186},
    {12301, 1187},
    {12443, 1246},
    {12444, 1247},
    {12449, 1191},
    {12450, 1201},
    {12451, 1192},
    {12452, 1202},
    {12453, 1193},
    {12454, 1203},
    {12455, 1194},
    {12456, 1204},
    {12457, 1195},
    {12458, 1205},
    {12459, 1206},
    {12461, 1207},
    {12463, 1208},
    {12465, 1209},
    {12467, 1210},
    {12469, 1211},
    {12471, 1212},
    {12473, 1213},
    {12475, 1214},
    {12477, 1215},
    {12479, 1216},
    {12481, 1217},
    {12481, 1217},
    {12483, 1199},
    {12483, 1199},
    {12484, 1218},
    {12484, 1218},
    {12486, 1219},
    {12488, 1220},
    {12490, 1221},
    {12491, 1222},
    {12492, 1223},
    {12493, 1224},
    {12494, 1225},
    {12495, 1226},
    {12498, 1227},
    {12501, 1228},
    {12501, 1228},
    {12504, 1229},
    {12507, 1230},
    {12510, 1231},
    {12511, 1232},
    {12512, 1233},
    {12513, 1234},
    {12514, 1235},
    {12515, 1196},
    {12516, 1236},
    {12517, 1197},
    {12518, 1237},
    {12519, 1198},
    {12520, 1238},
    {12521, 1239},
    {12522, 1240},
    {12523, 1241},
    {12524, 1242},
    {12525, 1243},
    {12527, 1244},
    {12530, 1190},
    {12531, 1245},
    {12539, 1189},
    {12539, 1189},
    {12540, 1200},
    {12593, 3745},
    {12594, 3746},
    {12595, 3747},
    {12596, 3748},
    {12597, 3749},
    {12598, 3750},
    {12599, 3751},
    {12600, 3752},
    {12601, 3753},
    {12602, 3754},
    {12603, 3755},
    {12604, 3756},
    {12605, 3757},
    {12606, 3758},
    {12607, 3759},
    {12608, 3760},
    {12609, 3761},
    {12610, 3762},
    {12611, 3763},
    {12612, 3764},
    {12613, 3765},
    {12614, 3766},
    {12615, 3767},
    {12616, 3768},
    {12617, 3769},
    {12618, 3770},
    {12619, 3771},
    {12620, 3772},
    {12621, 3773},
    {12622, 3774},
    {12623, 3775},
    {12624, 3776},
    {12625, 3777},
    {12626, 3778},
    {12627, 3779},
    {12628, 3780},
    {12629, 3781},
    {12630, 3782},
    {12631, 3783},
    {12632, 3784},
    {12633, 3785},
    {12634, 3786},
    {12635, 3787},
    {12636, 3788},
    {12637, 3789},
    {12638, 3790},
    {12639, 3791},
    {12640, 3792},
    {12641, 3793},
    {12642, 3794},
    {12643, 3795},
    {12653, 3823},
    {12657, 3824},
    {12664, 3825},
    {12671, 3826},
    {12673, 3827},
    {12676, 3828},
    {12678, 3829},
    {12685, 3830},
    {12686, 3831},
    {65533, 3550},
};

struct QtCode2Key {
    int qtcode;
    int key;

    bool operator < (const int& u) const {
        return qtcode < u;
    }
};

bool operator < (const int& u, const QtCode2Key& key) {
    return u < key.qtcode;
}

QtCode2Key keyPadQtCodeToKey[] =
{
    {32, 65408},
    {42, 65450},
    {43, 65451},
    {44, 65452},
    {45, 65453},
    {46, 65454},
    {47, 65455},
    {48, 65456},
    {49, 65457},
    {50, 65458},
    {51, 65459},
    {52, 65460},
    {53, 65461},
    {54, 65462},
    {55, 65463},
    {56, 65464},
    {57, 65465},
    {61, 65469},
    {16777217, 65417},
    {16777221, 65421},
    {16777222, 65438},
    {16777223, 65439},
    {16777227, 65437},
    {16777232, 65429},
    {16777233, 65436},
    {16777234, 65430},
    {16777235, 65431},
    {16777236, 65432},
    {16777237, 65433},
    {16777238, 65434},
    {16777239, 65435},
};

QtCode2Key qtCodeToKeyBackup[] = {
{32, 32},
{33, 33},
{34, 34},
{35, 35},
{36, 36},
{37, 37},
{38, 38},
{39, 39},
{40, 40},
{41, 41},
{42, 42},
{43, 43},
{44, 44},
{45, 45},
{46, 46},
{47, 47},
{48, 48},
{49, 49},
{50, 50},
{51, 51},
{52, 52},
{53, 53},
{54, 54},
{55, 55},
{56, 56},
{57, 57},
{58, 58},
{59, 59},
{60, 60},
{61, 61},
{62, 62},
{63, 63},
{64, 64},
{65, 65},
{66, 66},
{67, 67},
{68, 68},
{69, 69},
{70, 70},
{71, 71},
{72, 72},
{73, 73},
{74, 74},
{75, 75},
{76, 76},
{77, 77},
{78, 78},
{79, 79},
{80, 80},
{81, 81},
{82, 82},
{83, 83},
{84, 84},
{85, 85},
{86, 86},
{87, 87},
{88, 88},
{89, 89},
{90, 90},
{91, 91},
{92, 92},
{93, 93},
{94, 94},
{95, 95},
{96, 96},
{123, 123},
{124, 124},
{125, 125},
{126, 126},
{256, 960},
{258, 451},
{260, 417},
{262, 454},
{264, 710},
{266, 709},
{268, 456},
{270, 463},
{272, 464},
{274, 938},
{278, 972},
{280, 458},
{282, 460},
{284, 728},
{286, 683},
{288, 725},
{290, 939},
{292, 678},
{294, 673},
{296, 933},
{298, 975},
{300, 16777516},
{302, 967},
{304, 681},
{308, 684},
{310, 979},
{312, 930},
{313, 453},
{315, 934},
{317, 421},
{321, 419},
{323, 465},
{325, 977},
{327, 466},
{330, 957},
{332, 978},
{336, 469},
{340, 448},
{342, 931},
{344, 472},
{346, 422},
{348, 734},
{350, 426},
{352, 425},
{354, 478},
{356, 427},
{358, 940},
{360, 989},
{362, 990},
{364, 733},
{366, 473},
{368, 475},
{370, 985},
{372, 16777588},
{374, 16777590},
{377, 428},
{379, 431},
{381, 430},
{399, 16777615},
{401, 2294},
{415, 16777631},
{416, 16777632},
{431, 16777647},
{437, 16777653},
{465, 16777681},
{486, 16777702},
{711, 439},
{728, 418},
{729, 511},
{731, 434},
{733, 445},
{901, 1966},
{902, 1953},
{904, 1954},
{905, 1955},
{906, 1956},
{908, 1959},
{910, 1960},
{911, 1963},
{912, 1974},
{913, 1985},
{914, 1986},
{915, 1987},
{916, 1988},
{917, 1989},
{918, 1990},
{919, 1991},
{920, 1992},
{921, 1993},
{922, 1994},
{923, 1995},
{924, 1996},
{925, 1997},
{926, 1998},
{927, 1999},
{928, 2000},
{929, 2001},
{931, 2002},
{932, 2004},
{933, 2005},
{934, 2006},
{935, 2007},
{936, 2008},
{937, 2009},
{938, 1957},
{939, 1961},
{944, 1978},
{1025, 1699},
{1026, 1697},
{1027, 1698},
{1028, 1700},
{1029, 1701},
{1030, 1702},
{1031, 1703},
{1032, 1704},
{1033, 1705},
{1034, 1706},
{1035, 1707},
{1036, 1708},
{1038, 1710},
{1039, 1711},
{1040, 1729},
{1041, 1730},
{1042, 1751},
{1043, 1735},
{1044, 1732},
{1045, 1733},
{1046, 1750},
{1047, 1754},
{1048, 1737},
{1049, 1738},
{1050, 1739},
{1051, 1740},
{1052, 1741},
{1053, 1742},
{1054, 1743},
{1055, 1744},
{1056, 1746},
{1057, 1747},
{1058, 1748},
{1059, 1749},
{1060, 1734},
{1061, 1736},
{1062, 1731},
{1063, 1758},
{1064, 1755},
{1065, 1757},
{1066, 1759},
{1067, 1753},
{1068, 1752},
{1069, 1756},
{1070, 1728},
{1071, 1745},
{1170, 16778386},
{1174, 16778390},
{1178, 16778394},
{1180, 16778396},
{1186, 16778402},
{1198, 16778414},
{1200, 16778416},
{1202, 16778418},
{1206, 16778422},
{1208, 16778424},
{1210, 16778426},
{1240, 16778456},
{1250, 16778466},
{1256, 16778472},
{1262, 16778478},
{1329, 16778545},
{1330, 16778546},
{1331, 16778547},
{1332, 16778548},
{1333, 16778549},
{1334, 16778550},
{1335, 16778551},
{1336, 16778552},
{1337, 16778553},
{1338, 16778554},
{1339, 16778555},
{1340, 16778556},
{1341, 16778557},
{1342, 16778558},
{1343, 16778559},
{1344, 16778560},
{1345, 16778561},
{1346, 16778562},
{1347, 16778563},
{1348, 16778564},
{1349, 16778565},
{1350, 16778566},
{1351, 16778567},
{1352, 16778568},
{1353, 16778569},
{1354, 16778570},
{1355, 16778571},
{1356, 16778572},
{1357, 16778573},
{1358, 16778574},
{1359, 16778575},
{1360, 16778576},
{1361, 16778577},
{1362, 16778578},
{1363, 16778579},
{1364, 16778580},
{1365, 16778581},
{1366, 16778582},
{1370, 16778586},
{1371, 16778587},
{1372, 16778588},
{1373, 16778589},
{1374, 16778590},
{1415, 16778631},
{1417, 16778633},
{1418, 16778634},
{1488, 3296},
{1489, 3297},
{1490, 3298},
{1491, 3299},
{1492, 3300},
{1493, 3301},
{1494, 3302},
{1495, 3303},
{1496, 3304},
{1497, 3305},
{1498, 3306},
{1499, 3307},
{1500, 3308},
{1501, 3309},
{1502, 3310},
{1503, 3311},
{1504, 3312},
{1505, 3313},
{1506, 3314},
{1507, 3315},
{1508, 3316},
{1509, 3317},
{1510, 3318},
{1511, 3319},
{1512, 3320},
{1513, 3321},
{1514, 3322},
{1548, 1452},
{1563, 1467},
{1567, 1471},
{1569, 1473},
{1570, 1474},
{1571, 1475},
{1572, 1476},
{1573, 1477},
{1574, 1478},
{1575, 1479},
{1576, 1480},
{1577, 1481},
{1578, 1482},
{1579, 1483},
{1580, 1484},
{1581, 1485},
{1582, 1486},
{1583, 1487},
{1584, 1488},
{1585, 1489},
{1586, 1490},
{1587, 1491},
{1588, 1492},
{1589, 1493},
{1590, 1494},
{1591, 1495},
{1592, 1496},
{1593, 1497},
{1594, 1498},
{1600, 1504},
{1601, 1505},
{1602, 1506},
{1603, 1507},
{1604, 1508},
{1605, 1509},
{1606, 1510},
{1607, 1511},
{1608, 1512},
{1609, 1513},
{1610, 1514},
{1611, 1515},
{1612, 1516},
{1613, 1517},
{1614, 1518},
{1615, 1519},
{1616, 1520},
{1617, 1521},
{1618, 1522},
{1619, 16778835},
{1620, 16778836},
{1621, 16778837},
{1632, 16778848},
{1633, 16778849},
{1634, 16778850},
{1635, 16778851},
{1636, 16778852},
{1637, 16778853},
{1638, 16778854},
{1639, 16778855},
{1640, 16778856},
{1641, 16778857},
{1642, 16778858},
{1648, 16778864},
{1657, 16778873},
{1662, 16778878},
{1670, 16778886},
{1672, 16778888},
{1681, 16778897},
{1688, 16778904},
{1700, 16778916},
{1705, 16778921},
{1711, 16778927},
{1722, 16778938},
{1726, 16778942},
{1729, 16778945},
{1740, 16778956},
{1746, 16778962},
{1748, 16778964},
{1776, 16778992},
{1777, 16778993},
{1778, 16778994},
{1779, 16778995},
{1780, 16778996},
{1781, 16778997},
{1782, 16778998},
{1783, 16778999},
{1784, 16779000},
{1785, 16779001},
{3458, 16780674},
{3459, 16780675},
{3461, 16780677},
{3462, 16780678},
{3463, 16780679},
{3464, 16780680},
{3465, 16780681},
{3466, 16780682},
{3467, 16780683},
{3468, 16780684},
{3469, 16780685},
{3470, 16780686},
{3471, 16780687},
{3472, 16780688},
{3473, 16780689},
{3474, 16780690},
{3475, 16780691},
{3476, 16780692},
{3477, 16780693},
{3478, 16780694},
{3482, 16780698},
{3483, 16780699},
{3484, 16780700},
{3485, 16780701},
{3486, 16780702},
{3487, 16780703},
{3488, 16780704},
{3489, 16780705},
{3490, 16780706},
{3491, 16780707},
{3492, 16780708},
{3493, 16780709},
{3494, 16780710},
{3495, 16780711},
{3496, 16780712},
{3497, 16780713},
{3498, 16780714},
{3499, 16780715},
{3500, 16780716},
{3501, 16780717},
{3502, 16780718},
{3503, 16780719},
{3504, 16780720},
{3505, 16780721},
{3507, 16780723},
{3508, 16780724},
{3509, 16780725},
{3510, 16780726},
{3511, 16780727},
{3512, 16780728},
{3513, 16780729},
{3514, 16780730},
{3515, 16780731},
{3517, 16780733},
{3520, 16780736},
{3521, 16780737},
{3522, 16780738},
{3523, 16780739},
{3524, 16780740},
{3525, 16780741},
{3526, 16780742},
{3530, 16780746},
{3535, 16780751},
{3536, 16780752},
{3537, 16780753},
{3538, 16780754},
{3539, 16780755},
{3540, 16780756},
{3542, 16780758},
{3544, 16780760},
{3545, 16780761},
{3546, 16780762},
{3547, 16780763},
{3548, 16780764},
{3549, 16780765},
{3550, 16780766},
{3551, 16780767},
{3570, 16780786},
{3571, 16780787},
{3572, 16780788},
{3585, 3489},
{3586, 3490},
{3587, 3491},
{3588, 3492},
{3589, 3493},
{3590, 3494},
{3591, 3495},
{3592, 3496},
{3593, 3497},
{3594, 3498},
{3595, 3499},
{3596, 3500},
{3597, 3501},
{3598, 3502},
{3599, 3503},
{3600, 3504},
{3601, 3505},
{3602, 3506},
{3603, 3507},
{3604, 3508},
{3605, 3509},
{3606, 3510},
{3607, 3511},
{3608, 3512},
{3609, 3513},
{3610, 3514},
{3611, 3515},
{3612, 3516},
{3613, 3517},
{3614, 3518},
{3615, 3519},
{3616, 3520},
{3617, 3521},
{3618, 3522},
{3619, 3523},
{3620, 3524},
{3621, 3525},
{3622, 3526},
{3623, 3527},
{3624, 3528},
{3625, 3529},
{3626, 3530},
{3627, 3531},
{3628, 3532},
{3629, 3533},
{3630, 3534},
{3631, 3535},
{3632, 3536},
{3633, 3537},
{3634, 3538},
{3635, 3539},
{3636, 3540},
{3637, 3541},
{3638, 3542},
{3639, 3543},
{3640, 3544},
{3641, 3545},
{3642, 3546},
{3647, 3551},
{3648, 3552},
{3649, 3553},
{3650, 3554},
{3651, 3555},
{3652, 3556},
{3653, 3557},
{3654, 3558},
{3655, 3559},
{3656, 3560},
{3657, 3561},
{3658, 3562},
{3659, 3563},
{3660, 3564},
{3661, 3565},
{3664, 3568},
{3665, 3569},
{3666, 3570},
{3667, 3571},
{3668, 3572},
{3669, 3573},
{3670, 3574},
{3671, 3575},
{3672, 3576},
{3673, 3577},
{4304, 16781520},
{4305, 16781521},
{4306, 16781522},
{4307, 16781523},
{4308, 16781524},
{4309, 16781525},
{4310, 16781526},
{4311, 16781527},
{4312, 16781528},
{4313, 16781529},
{4314, 16781530},
{4315, 16781531},
{4316, 16781532},
{4317, 16781533},
{4318, 16781534},
{4319, 16781535},
{4320, 16781536},
{4321, 16781537},
{4322, 16781538},
{4323, 16781539},
{4324, 16781540},
{4325, 16781541},
{4326, 16781542},
{4327, 16781543},
{4328, 16781544},
{4329, 16781545},
{4330, 16781546},
{4331, 16781547},
{4332, 16781548},
{4333, 16781549},
{4334, 16781550},
{4335, 16781551},
{4336, 16781552},
{4337, 16781553},
{4338, 16781554},
{4339, 16781555},
{4340, 16781556},
{4341, 16781557},
{4342, 16781558},
{4520, 3796},
{4521, 3797},
{4522, 3798},
{4523, 3799},
{4524, 3800},
{4525, 3801},
{4526, 3802},
{4527, 3803},
{4528, 3804},
{4529, 3805},
{4530, 3806},
{4531, 3807},
{4532, 3808},
{4533, 3809},
{4534, 3810},
{4535, 3811},
{4536, 3812},
{4537, 3813},
{4538, 3814},
{4539, 3815},
{4540, 3816},
{4541, 3817},
{4542, 3818},
{4543, 3819},
{4544, 3820},
{4545, 3821},
{4546, 3822},
{4587, 3832},
{4592, 3833},
{4601, 3834},
{7682, 16784898},
{7690, 16784906},
{7710, 16784926},
{7734, 16784950},
{7744, 16784960},
{7766, 16784982},
{7776, 16784992},
{7786, 16785002},
{7808, 16785024},
{7810, 16785026},
{7812, 16785028},
{7818, 16785034},
{7840, 16785056},
{7842, 16785058},
{7844, 16785060},
{7846, 16785062},
{7848, 16785064},
{7850, 16785066},
{7852, 16785068},
{7854, 16785070},
{7856, 16785072},
{7858, 16785074},
{7860, 16785076},
{7862, 16785078},
{7864, 16785080},
{7866, 16785082},
{7868, 16785084},
{7870, 16785086},
{7872, 16785088},
{7874, 16785090},
{7876, 16785092},
{7878, 16785094},
{7880, 16785096},
{7882, 16785098},
{7884, 16785100},
{7886, 16785102},
{7888, 16785104},
{7890, 16785106},
{7892, 16785108},
{7894, 16785110},
{7896, 16785112},
{7898, 16785114},
{7900, 16785116},
{7902, 16785118},
{7904, 16785120},
{7906, 16785122},
{7908, 16785124},
{7910, 16785126},
{7912, 16785128},
{7914, 16785130},
{7916, 16785132},
{7918, 16785134},
{7920, 16785136},
{7922, 16785138},
{7924, 16785140},
{7926, 16785142},
{7928, 16785144},
{8194, 2722},
{8195, 2721},
{8196, 2723},
{8197, 2724},
{8199, 2725},
{8200, 2726},
{8201, 2727},
{8202, 2728},
{8210, 2747},
{8211, 2730},
{8212, 2729},
{8213, 1967},
{8215, 3295},
{8216, 2768},
{8217, 2769},
{8218, 2813},
{8220, 2770},
{8221, 2771},
{8222, 2814},
{8224, 2801},
{8225, 2802},
{8226, 2790},
{8229, 2735},
{8230, 2734},
{8242, 2774},
{8243, 2775},
{8248, 2812},
{8254, 1150},
{8304, 16785520},
{8308, 16785524},
{8309, 16785525},
{8310, 16785526},
{8311, 16785527},
{8312, 16785528},
{8313, 16785529},
{8320, 16785536},
{8321, 16785537},
{8322, 16785538},
{8323, 16785539},
{8324, 16785540},
{8325, 16785541},
{8326, 16785542},
{8327, 16785543},
{8328, 16785544},
{8329, 16785545},
{8352, 16785568},
{8353, 16785569},
{8354, 16785570},
{8355, 16785571},
{8356, 16785572},
{8357, 16785573},
{8358, 16785574},
{8359, 16785575},
{8360, 16785576},
{8361, 16785577},
{8362, 16785578},
{8363, 16785579},
{8364, 8364},
{8453, 2744},
{8470, 1712},
{8471, 2811},
{8478, 2772},
{8482, 2761},
{8531, 2736},
{8532, 2737},
{8533, 2738},
{8534, 2739},
{8535, 2740},
{8536, 2741},
{8537, 2742},
{8538, 2743},
{8539, 2755},
{8540, 2756},
{8541, 2757},
{8542, 2758},
{8592, 2299},
{8593, 2300},
{8594, 2301},
{8595, 2302},
{8658, 2254},
{8660, 2253},
{8706, 16785922},
{8709, 16785925},
{8711, 2245},
{8712, 16785928},
{8713, 16785929},
{8715, 16785931},
{8728, 3018},
{8730, 16785946},
{8731, 16785947},
{8732, 16785948},
{8733, 2241},
{8734, 2242},
{8743, 2270},
{8744, 2271},
{8745, 2268},
{8746, 2269},
{8747, 2239},
{8748, 16785964},
{8749, 16785965},
{8756, 2240},
{8757, 16785973},
{8764, 2248},
{8771, 2249},
{8775, 16785991},
{8776, 16785992},
{8800, 2237},
{8801, 2255},
{8802, 16786018},
{8803, 16786019},
{8804, 2236},
{8805, 2238},
{8834, 2266},
{8835, 2267},
{8866, 3036},
{8867, 3068},
{8868, 3022},
{8968, 3027},
{8970, 3012},
{8981, 2810},
{8992, 2212},
{8993, 2213},
{9001, 2748},
{9002, 2750},
{9109, 3020},
{9115, 2219},
{9117, 2220},
{9118, 2221},
{9120, 2222},
{9121, 2215},
{9123, 2216},
{9124, 2217},
{9126, 2218},
{9128, 2223},
{9132, 2224},
{9143, 2209},
{9146, 2543},
{9147, 2544},
{9148, 2546},
{9149, 2547},
{9225, 2530},
{9226, 2533},
{9227, 2537},
{9228, 2531},
{9229, 2532},
{9252, 2536},
{9472, 2211},
{9474, 2214},
{9484, 2210},
{9488, 2539},
{9492, 2541},
{9496, 2538},
{9500, 2548},
{9508, 2549},
{9516, 2551},
{9524, 2550},
{9532, 2542},
{9618, 2529},
{9642, 2791},
{9643, 2785},
{9644, 2779},
{9645, 2786},
{9646, 2783},
{9647, 2767},
{9650, 2792},
{9651, 2787},
{9654, 2781},
{9655, 2765},
{9660, 2793},
{9661, 2788},
{9664, 2780},
{9665, 2764},
{9670, 2528},
{9675, 2766},
{9679, 2782},
{9702, 2784},
{9734, 2789},
{9742, 2809},
{9747, 2762},
{9756, 2794},
{9758, 2795},
{9792, 2808},
{9794, 2807},
{9827, 2796},
{9829, 2798},
{9830, 2797},
{9837, 2806},
{9839, 2805},
{10003, 2803},
{10007, 2804},
{10013, 2777},
{10016, 2800},
{10240, 16787456},
{10241, 16787457},
{10242, 16787458},
{10243, 16787459},
{10244, 16787460},
{10245, 16787461},
{10246, 16787462},
{10247, 16787463},
{10248, 16787464},
{10249, 16787465},
{10250, 16787466},
{10251, 16787467},
{10252, 16787468},
{10253, 16787469},
{10254, 16787470},
{10255, 16787471},
{10256, 16787472},
{10257, 16787473},
{10258, 16787474},
{10259, 16787475},
{10260, 16787476},
{10261, 16787477},
{10262, 16787478},
{10263, 16787479},
{10264, 16787480},
{10265, 16787481},
{10266, 16787482},
{10267, 16787483},
{10268, 16787484},
{10269, 16787485},
{10270, 16787486},
{10271, 16787487},
{10272, 16787488},
{10273, 16787489},
{10274, 16787490},
{10275, 16787491},
{10276, 16787492},
{10277, 16787493},
{10278, 16787494},
{10279, 16787495},
{10280, 16787496},
{10281, 16787497},
{10282, 16787498},
{10283, 16787499},
{10284, 16787500},
{10285, 16787501},
{10286, 16787502},
{10287, 16787503},
{10288, 16787504},
{10289, 16787505},
{10290, 16787506},
{10291, 16787507},
{10292, 16787508},
{10293, 16787509},
{10294, 16787510},
{10295, 16787511},
{10296, 16787512},
{10297, 16787513},
{10298, 16787514},
{10299, 16787515},
{10300, 16787516},
{10301, 16787517},
{10302, 16787518},
{10303, 16787519},
{10304, 16787520},
{10305, 16787521},
{10306, 16787522},
{10307, 16787523},
{10308, 16787524},
{10309, 16787525},
{10310, 16787526},
{10311, 16787527},
{10312, 16787528},
{10313, 16787529},
{10314, 16787530},
{10315, 16787531},
{10316, 16787532},
{10317, 16787533},
{10318, 16787534},
{10319, 16787535},
{10320, 16787536},
{10321, 16787537},
{10322, 16787538},
{10323, 16787539},
{10324, 16787540},
{10325, 16787541},
{10326, 16787542},
{10327, 16787543},
{10328, 16787544},
{10329, 16787545},
{10330, 16787546},
{10331, 16787547},
{10332, 16787548},
{10333, 16787549},
{10334, 16787550},
{10335, 16787551},
{10336, 16787552},
{10337, 16787553},
{10338, 16787554},
{10339, 16787555},
{10340, 16787556},
{10341, 16787557},
{10342, 16787558},
{10343, 16787559},
{10344, 16787560},
{10345, 16787561},
{10346, 16787562},
{10347, 16787563},
{10348, 16787564},
{10349, 16787565},
{10350, 16787566},
{10351, 16787567},
{10352, 16787568},
{10353, 16787569},
{10354, 16787570},
{10355, 16787571},
{10356, 16787572},
{10357, 16787573},
{10358, 16787574},
{10359, 16787575},
{10360, 16787576},
{10361, 16787577},
{10362, 16787578},
{10363, 16787579},
{10364, 16787580},
{10365, 16787581},
{10366, 16787582},
{10367, 16787583},
{10368, 16787584},
{10369, 16787585},
{10370, 16787586},
{10371, 16787587},
{10372, 16787588},
{10373, 16787589},
{10374, 16787590},
{10375, 16787591},
{10376, 16787592},
{10377, 16787593},
{10378, 16787594},
{10379, 16787595},
{10380, 16787596},
{10381, 16787597},
{10382, 16787598},
{10383, 16787599},
{10384, 16787600},
{10385, 16787601},
{10386, 16787602},
{10387, 16787603},
{10388, 16787604},
{10389, 16787605},
{10390, 16787606},
{10391, 16787607},
{10392, 16787608},
{10393, 16787609},
{10394, 16787610},
{10395, 16787611},
{10396, 16787612},
{10397, 16787613},
{10398, 16787614},
{10399, 16787615},
{10400, 16787616},
{10401, 16787617},
{10402, 16787618},
{10403, 16787619},
{10404, 16787620},
{10405, 16787621},
{10406, 16787622},
{10407, 16787623},
{10408, 16787624},
{10409, 16787625},
{10410, 16787626},
{10411, 16787627},
{10412, 16787628},
{10413, 16787629},
{10414, 16787630},
{10415, 16787631},
{10416, 16787632},
{10417, 16787633},
{10418, 16787634},
{10419, 16787635},
{10420, 16787636},
{10421, 16787637},
{10422, 16787638},
{10423, 16787639},
{10424, 16787640},
{10425, 16787641},
{10426, 16787642},
{10427, 16787643},
{10428, 16787644},
{10429, 16787645},
{10430, 16787646},
{10431, 16787647},
{10432, 16787648},
{10433, 16787649},
{10434, 16787650},
{10435, 16787651},
{10436, 16787652},
{10437, 16787653},
{10438, 16787654},
{10439, 16787655},
{10440, 16787656},
{10441, 16787657},
{10442, 16787658},
{10443, 16787659},
{10444, 16787660},
{10445, 16787661},
{10446, 16787662},
{10447, 16787663},
{10448, 16787664},
{10449, 16787665},
{10450, 16787666},
{10451, 16787667},
{10452, 16787668},
{10453, 16787669},
{10454, 16787670},
{10455, 16787671},
{10456, 16787672},
{10457, 16787673},
{10458, 16787674},
{10459, 16787675},
{10460, 16787676},
{10461, 16787677},
{10462, 16787678},
{10463, 16787679},
{10464, 16787680},
{10465, 16787681},
{10466, 16787682},
{10467, 16787683},
{10468, 16787684},
{10469, 16787685},
{10470, 16787686},
{10471, 16787687},
{10472, 16787688},
{10473, 16787689},
{10474, 16787690},
{10475, 16787691},
{10476, 16787692},
{10477, 16787693},
{10478, 16787694},
{10479, 16787695},
{10480, 16787696},
{10481, 16787697},
{10482, 16787698},
{10483, 16787699},
{10484, 16787700},
{10485, 16787701},
{10486, 16787702},
{10487, 16787703},
{10488, 16787704},
{10489, 16787705},
{10490, 16787706},
{10491, 16787707},
{10492, 16787708},
{10493, 16787709},
{10494, 16787710},
{10495, 16787711},
{12289, 1188},
{12290, 1185},
{12300, 1186},
{12301, 1187},
{12443, 1246},
{12444, 1247},
{12449, 1191},
{12450, 1201},
{12451, 1192},
{12452, 1202},
{12453, 1193},
{12454, 1203},
{12455, 1194},
{12456, 1204},
{12457, 1195},
{12458, 1205},
{12459, 1206},
{12461, 1207},
{12463, 1208},
{12465, 1209},
{12467, 1210},
{12469, 1211},
{12471, 1212},
{12473, 1213},
{12475, 1214},
{12477, 1215},
{12479, 1216},
{12481, 1217},
{12483, 1199},
{12484, 1218},
{12486, 1219},
{12488, 1220},
{12490, 1221},
{12491, 1222},
{12492, 1223},
{12493, 1224},
{12494, 1225},
{12495, 1226},
{12498, 1227},
{12501, 1228},
{12504, 1229},
{12507, 1230},
{12510, 1231},
{12511, 1232},
{12512, 1233},
{12513, 1234},
{12514, 1235},
{12515, 1196},
{12516, 1236},
{12517, 1197},
{12518, 1237},
{12519, 1198},
{12520, 1238},
{12521, 1239},
{12522, 1240},
{12523, 1241},
{12524, 1242},
{12525, 1243},
{12527, 1244},
{12530, 1190},
{12531, 1245},
{12539, 1189},
{12540, 1200},
{12593, 3745},
{12594, 3746},
{12595, 3747},
{12596, 3748},
{12597, 3749},
{12598, 3750},
{12599, 3751},
{12600, 3752},
{12601, 3753},
{12602, 3754},
{12603, 3755},
{12604, 3756},
{12605, 3757},
{12606, 3758},
{12607, 3759},
{12608, 3760},
{12609, 3761},
{12610, 3762},
{12611, 3763},
{12612, 3764},
{12613, 3765},
{12614, 3766},
{12615, 3767},
{12616, 3768},
{12617, 3769},
{12618, 3770},
{12619, 3771},
{12620, 3772},
{12621, 3773},
{12622, 3774},
{12623, 3775},
{12624, 3776},
{12625, 3777},
{12626, 3778},
{12627, 3779},
{12628, 3780},
{12629, 3781},
{12630, 3782},
{12631, 3783},
{12632, 3784},
{12633, 3785},
{12634, 3786},
{12635, 3787},
{12636, 3788},
{12637, 3789},
{12638, 3790},
{12639, 3791},
{12640, 3792},
{12641, 3793},
{12642, 3794},
{12643, 3795},
{12653, 3823},
{12657, 3824},
{12664, 3825},
{12671, 3826},
{12673, 3827},
{12676, 3828},
{12678, 3829},
{12685, 3830},
{12686, 3831},
{65533, 3550},
};

QtCode2Key qtCodeToKey[] =
{
    {16777216, 65307},
    {16777217, 65289},
    {16777218, 65056},
    {16777219, 65288},
    {16777220, 65293},
    {16777222, 65379},
    {16777223, 65535},
    {16777224, 65299},
    {16777225, 65377},
    {16777232, 65360},
    {16777233, 65367},
    {16777234, 65361},
    {16777235, 65362},
    {16777236, 65363},
    {16777237, 65364},
    {16777238, 65365},
    {16777239, 65366},
    {16777248, 65505},
    {16777249, 65507},
    {16777250, 65511},
    {16777251, 65513},
    {16777252, 65509},
    {16777253, 65407},
    {16777254, 65300},
    {16777264, 65470},
    {16777265, 65471},
    {16777266, 65472},
    {16777267, 65473},
    {16777268, 65474},
    {16777269, 65475},
    {16777270, 65476},
    {16777271, 65477},
    {16777272, 65478},
    {16777273, 65479},
    {16777274, 65480},
    {16777274, 65480},
    {16777275, 65481},
    {16777275, 65481},
    {16777276, 65482},
    {16777276, 65482},
    {16777277, 65483},
    {16777277, 65483},
    {16777278, 65484},
    {16777278, 65484},
    {16777279, 65485},
    {16777279, 65485},
    {16777280, 65486},
    {16777280, 65486},
    {16777281, 65487},
    {16777281, 65487},
    {16777282, 65488},
    {16777282, 65488},
    {16777283, 65489},
    {16777283, 65489},
    {16777284, 65490},
    {16777284, 65490},
    {16777285, 65491},
    {16777285, 65491},
    {16777286, 65492},
    {16777286, 65492},
    {16777287, 65493},
    {16777287, 65493},
    {16777288, 65494},
    {16777288, 65494},
    {16777289, 65495},
    {16777289, 65495},
    {16777290, 65496},
    {16777290, 65496},
    {16777291, 65497},
    {16777291, 65497},
    {16777292, 65498},
    {16777292, 65498},
    {16777293, 65499},
    {16777293, 65499},
    {16777294, 65500},
    {16777294, 65500},
    {16777295, 65501},
    {16777295, 65501},
    {16777296, 65502},
    {16777296, 65502},
    {16777297, 65503},
    {16777297, 65503},
    {16777298, 65504},
    {16777298, 65504},
    {16777299, 65515},
    {16777300, 65516},
    {16777301, 65383},
    {16777302, 65517},
    {16777303, 65518},
    {16777304, 65386},
    {16781571, 65027},
    {16781600, 65312},
    {16781601, 65313},
    {16781602, 65314},
    {16781603, 65315},
    {16781603, 65315},
    {16781604, 65316},
    {16781605, 65317},
    {16781606, 65318},
    {16781607, 65319},
    {16781608, 65320},
    {16781609, 65321},
    {16781610, 65322},
    {16781611, 65323},
    {16781612, 65324},
    {16781613, 65325},
    {16781614, 65326},
    {16781615, 65327},
    {16781616, 65328},
    {16781617, 65329},
    {16781618, 65330},
    {16781619, 65331},
    {16781620, 65332},
    {16781621, 65333},
    {16781622, 65334},
    {16781623, 65335},
    {16781623, 65335},
    {16781623, 65335},
    {16781624, 65336},
    {16781625, 65337},
    {16781626, 65338},
    {16781627, 65339},
    {16781628, 65340},
    {16781628, 65340},
    {16781629, 65341},
    {16781629, 65341},
    {16781629, 65341},
    {16781630, 65342},
    {16781630, 65342},
    {16781630, 65342},
    {16781631, 65343},
    {16781694, 65406},
    {16781694, 65406},
    {16781694, 65406},
    {16781694, 65406},
    {16781694, 65406},
    {16781694, 65406},
    {16781694, 65406},
    {16781694, 65406},
    {16781904, 65104},
    {16781905, 65105},
    {16781906, 65106},
    {16781907, 65107},
    {16781907, 65107},
    {16781908, 65108},
    {16781909, 65109},
    {16781910, 65110},
    {16781911, 65111},
    {16781912, 65112},
    {16781913, 65113},
    {16781914, 65114},
    {16781915, 65115},
    {16781916, 65116},
    {16781917, 65117},
    {16781918, 65118},
    {16781919, 65119},
    {16781920, 65120},
    {16781921, 65121},
    {16781922, 65122},
};
